WPF自定义控件与样式(9) |
您所在的位置:网站首页 › wpf menuitem icon绑定 › WPF自定义控件与样式(9) |
原文:WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。 本文主要内容: 菜单Menu的自定义样式; 右键菜单ContextMenu的自定义样式; 树控件TreeView的自定义样式,及右键菜单实现。二.菜单Menu的自定义样式 自定义菜单样式的效果图: Menu和ContextMenu样式本身很简单,他们最主要的部分就是MenuItem,MenuItem中包含的内容比较多,如图标、选中状态、二级菜单、二级菜单的指针、快捷键等。 使用了字体图标定义菜单项MenuItem样式代码: ![]() ![]() Menu样式: 示例代码:
三.右键菜单ContextMenu的自定义样式 有了第二节的MenuItem样式,ContextMenu的样式很简单: 实现一个文本操作(剪切、复制、粘贴)的样式: 效果图:
四.树控件TreeView的自定义样式 4.1TreeView基本样式 TreeView的样式比较简单,相比ListBox,主要多了层级关系,节点的展开、收缩。效果图: 样式定义中默认是开启虚拟化,以支持大数据,数据不多时最好关闭。样式代码: ![]() ![]() 4.2 TreeView的右键菜单实现 TreeView支持右键操作应该是比较常见的需求,实现很简单,效果演示: 示例代码: 后台C#代码: private void TreeViewItem_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) { var treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject) as TreeViewItem; if (treeViewItem != null) { treeViewItem.Focus(); e.Handled = true; } } static DependencyObject VisualUpwardSearch(DependencyObject source) { while (source != null && source.GetType() != typeof(T)) source = VisualTreeHelper.GetParent(source); return source; } private void MenuItem_OnClick(object sender, RoutedEventArgs e) { var item = this.tree1.SelectedItem as NodeX; if (item != null) { MessageBoxX.Info(item.Name.ToString()); } }
附录:参考引用 WPF自定义控件与样式(1)-矢量字体图标(iconfont) WPF自定义控件与样式(2)-自定义按钮FButton WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展 WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式 WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展 WPF自定义控件与样式(6)-ScrollViewer与ListBox自定义样式 WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式 WPF自定义控件与样式(8)-ComboBox与自定义多选控件MultComboBox
版权所有,文章来源:http://www.cnblogs.com/anding 个人能力有限,本文内容仅供学习、探讨,欢迎指正、交流。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |